OO Programmeren Labo 9 en 10
abstractie en overerving
Afstandsonderwijs
Doelstelling
In dit labo leer je:
- klassen af te leiden uit bestaande klassen via overerving;
- abstracte klassen en abstracte methodes te introduceren waar gepast;
- lijsten te bevolken met objecten van verschillende subklassen van één ouderklasse;
- het juiste type kiezen bij het declareren van een variabele wanneer er meerdere opties zijn;
virtual
methodes te overschrijven metoverride;
Theorie
- Overerving intro
- Virtual en override
- Abstract
- De theorie wordt in het labofilmpje hieronder verwerkt.
Labo
- We breiden ons project SchoolAdmin uit met een klasse
Lecturer
. - We groeperen gemeenschappelijke aspecten van
Student
enLecturer
in een klassePerson
. - We maken de klasse
Person
abstract. - We voorzien een abstracte methode
ShowOne
en latenStudent
enLecturer
deze concreet maken. - We voorzien een "default" methode
GetNameTagText
maar laten deze overschrijven doorLecturer
. - We voorzien een concrete methode
ShowCourses
inLecturer
die volledig los staat vanPerson
(deze hoeft nog geen echte vakken te tonen, dat kunnen we later toevoegen). - ;
Opdracht
- Breng je code up-to-date met het filmpje. Zorg dus voor:
- een abstracte klasse
Person
met:- een abstracte methode
ShowOne
van type string - een overschrijfbare methode
GetNameTagText
van type string
- een abstracte methode
- een klasse Lecturer die Person concreet maakt met:
- een implementatie van
ShowOne
- een afwijkende implementatie van
GetNameTagText
die een jobtitel voor de naam plaatst - een statische
List<Lecturer>
-property List - een concrete methode
ShowCourses
die een een boodschap genereert waaruit kan afgelezen worden welke vakken deze lector geeft.
- een implementatie van
- een uitgebreide versie van
Main
, waarin een lijst vanPerson
-objecten wordt aangemaakt met daarin de bestaandeStudent
-objecten en volgende twee lectoren (in het filmpje worden andere objecten gebruikt; jij plaatst er alle studenten in en deze twee lectoren):- Adem Kaya, 1976-12-01, 1, 1
- Anne Wouters, 1968-04-03, 2, 2
- een abstracte klasse
- Doe zelf volgende extra's:
- Naast studenten en lectoren zijn er ook administratieve medewerkers. Maak hiervoor een klasse
AdministrativeStaff
. - Zorg ervoor dat
ShowOne
voor administratief personeel hetzelfde werkt als voor lectoren, maar geen geboortedatum toont. - Zorg ervoor dat voor administratief personeel de tekst (ADMINISTRATIE) verschijnt op het naamkaartje, vlak voor de volledige naam.
- Maak een object van deze nieuwe klasse aan: Raul Jacob, 1985-11-01, 1, 1.
- Voeg deze persoon toe aan de lijst met alle personen.
- Controleer dat ook zijn gegevens juist getoond worden.
- Plaats je code op Bitbucket.
- Stuur het bestand AdministrativeStaff.cs met de link op Digitap door.
- Naast studenten en lectoren zijn er ook administratieve medewerkers. Maak hiervoor een klasse
2020-04-30 16:12:41